<?php
/**
 * @author		João Batista Neto
 * @brief		Classes e interfaces utilitárias
 * @package		rpo.util
 */

require_once 'rpo/util/ObjectStorage.php';
require_once 'rpo/util/SimpleObjectIterator.php';

/**
 * @brief	Armazenador simples de objetos
 * @class	SimpleObjectStorage
 */
class SimpleObjectStorage extends ObjectStorage {
	/**
	 * @brief	Verifica se um objeto é aceitável para o Iterator antes de adicioná-lo
	 * @return	boolean
	 */
	protected function accept( IObject $object ){
		return true;
	}

	/**
	 * @brief	Cria uma instância do objeto Iterator
	 * @details	Esse método é útil em casos em que é necessário modificar o tipo
	 * do objeto Iterator.
	 * @return	ObjectIterator
	 */
	protected function createObjectIterator(){
		return new SimpleObjectIterator();
	}
}